آشنایی با VBA
دیدگاهها برای آشنایی با VBA بسته هس
نوشته های مشابه
ساخت سلول چشمک زن در اکسل
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
ثبت کامنت درون سلول
اجزاء زبان VBA
کلمه VBA که مخفف Visual Basic for Applications میباشد، یک زبان برنامهنویسی میباشد که توسط شرکت مایکروسافت توسعه داده شده است. مایکروسافت شرکت ارائه دهنده ویندوز میباشد و از دیگر محصولات این شرکت نرمافزار پرکاربرد اکسل میباشد. به منظور استفاده از نرمافزار اکسل در سطح حرفهای نیاز به دانستن زبان ویژوئال بیسیک میباشد.
رباطی را در نظر بگیرید که به صورت کامل با اکسل آشنا است و فقط کافی است که شما از آن درخواست انجام کاری دهید و رباط تمامی درخاستها را به ترتیب انجام میدهد و سپس شما میتوانید نظارهگر باشید و لذت ببرید، در واقع VBA زبانی است که شما میتوانید با آن از رباط درخواست انجام کارها را بدهید.
با VBA چه کارهایی میشود انجام داد؟
تحلیل دادههای علمی
برنامهریزی و پیشبینی
ایجاد فرم
ایجاد نمودار بر روی دادهها
ایجاد پیام
و ……
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
کاربردهای VBA محدود به موارد فوق نمیباشد و هر کاری که با اکسل قابل اجرا میباشد را نیز میتوان با VBA اجرا نمود، از آنجایی که محدوده کاربرد اکسل محدود نمیباشد و هر کس بسته به نیاز خود از آن استفاده مینماید، کاربردهای VBA نیز نامحدود میباشد و کاربران بسته به نیاز خود جهت سهولت در تکرار کارها و روالها و همچنین انجام کارها بر روی حجم بالایی از اطلاعات از آن استفاده مینمایند.
برای مثال ممکن است کاربر بخواهد فرمت خاصی را بر روی تعداد زیادی از فایلها و شیتها اجرا نماید، در صورتی که این کار به صورت دستی انجام گیرد، بسیار زمان بر و خسته کننده میباشد و این در حالی است که با ایجاد کد کوتاهی، در هر زمان که نیاز باشد این فعالیتها را انجام داد.
در واقع VBA باعث اتوماتیک شدن، ایجاد تابعهای جدید، ایجاد افزودنیها به اکسل و … مورد استفاده قرار میگیرد.
مزایا و معایب VBA
مزایا:
کارها، به همان صورت گفته شده انجام میگیرد.
کارها با صرعت بالا انجام میگیرد.
درصورت برنامهنویسی صحیح، کارها بدون خطا انجام میگیرد.
اگر به صورت صحیح برنامهریزی شود، حتی کسی که با اکسل آشنا نمیباشد میتواند نتایج مناسب به دست آورد.
برنامهنویس اکسل قادر به انجام کارهایی میباشد که سایرین قادر به انجام آن نمیباشند.
در هنگام اجرای برنامه، نیاز به نشستن پشت کامپیوتر نمیباشد و شما میتوانیم آن را اجرا نموده و خودتان به کارهایتان برسید و یا یک فنجان قهوه میل نمایید.
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
معایب
نیاز به دانستن زبان برنامه نویسی VBA میباشد. (که این کار چندان که فکر میکنید سخت نمیباشد)
افراد دیگر جهت استفاده از کدها نیاز به داشتن همان نسخه اکسل میباشد. (ویژگیهایی در نسخههای جدید وجود دارد که در نسخههای قبلی اکسل قابل استفاده نمیباشند)
در هنگام برنامهنویسی، ممکن است اشتباهاتی بهوجود آید.
ساختار VBA
در زیر به صورت خلاصه در مورد VBA توضیح داده میشود.
کدها در محیطی تحت عنوان مودول (Module) نوشته میشود. کدهای نوشته شده در مودول توسط VBE قابل رویت و تغییر میباشد.
درون مدلها، روالها (Sub Procedurs) و توابع (Function Procedur) نوشته میشوند. در روالها کامپیوتر مجموعهای از فرایندها را انجام میدهد و متناسب با فرایند تغییرات لازم اعمال میشوند و این در حالی است که توابع با دریافت تعدادی پارامتر ( بعضا بدون پارامتر ورودی همانند تابع now() در اکسل) یک مقدار را به عنوان خروجی نتیجه میدهند.
اصلیترین عناصر که در VBA مورد استفاده قرار میگیرند اشیا (object) میباشند و اکسل شامل تعداد زیادی شی از جمله، کارپوشه، کاربرگ، نمودار و … میباشد که با استفاده از VBA قادر به دستکاری کردن هر یک میباشد.
اشیا در اکسل دارای ساختاری سلسله مراتبی میباشند به گونهای که در راس تمامی آنها خود اکسل قرار میگیرد و به Application نامیده میشود و خود آن شامل اشیایی از جمله کارپوشه (Workbooks) میباشد و کارپوشه شامل تعداد زیادی اشیا از جمله کاربرگ (Worksheets) و نمودار (Chart) میباشد و به همین صورت.
اشیا قابلیت جمعپذیری دارند به گونهای که با افزودن S در انتهای شی کاربرگ (Worksheet)، مجموع کاربرگها در نظر گرفته میشود.
اشیا با در نظر گرفتن “.” تعیین مکان میشوند، مثلا اگر بخواهیم کارپوشه Book.xlsx را آدرس دهیم، از کد زیر استفاده میکنیم:
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
Application.Workbooks(“Book.xlsx”)
و اگر بخواهیم کاربرگی تحت عنوان Sheet1 را که در همان کارپوشه قرار دارد را آدرس دهیم، از کد زیر استفاده میکنیم.
Application.Workbooks(“Book.xlsx”).Worksheets(“Sheet1”)
و به همین صورت اگر سلول A1 در همان کار برگ را آدرس دهیم دارم:
Application.Workbooks(“Book.xlsx”).Worksheets(“Sheet1”).Range(“A1”)
البته اگر بدانیم که کاربرگ فعال همان کاربرگ مد نظر است، جهت آدرس دادن سلول A1 میتوانیم فقط کد زیر را بزنیم.
Range(“A1”)
و از طرف دیگر حذف قسمت Application در ابتدای کدهای فوق هیچ مشکلی به وجود نمیآورد.
هر شی در اکسل دارای ویژگی ها و یا داراییها (Property) میباشد که قابل تغییر و یا خواندن میباشند برای مثال هر سلول به عنوان شی دارای ویژگیهایی همچون مقدار، آدرس، رنگ و … دارد که به هر ویژگی با استفاده از “.” به دنبال شی آورده میشود.
Worksheets(“Sheet1”).Range(“A1”).Value
در VBA میتوان مقادیر مورد نظر را درون متغیرها ذخیره نمود. متغیر جزئی از زبان برنامه نویسی میباشد که مقادیر را در خود نگهداری میکند. برای نمونه، اگر بخواهیم مقدار سلول A1 را در متغیر X ذخیره نماییم، داریم:
X=Worksheets(“Sheet1”).Range(“A1”).Value
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
در VBA اشیا دارای روشهایی (Method) میباشند که با استفاده از آنها میتوان تغییراتی بر روی اشیا وارد کرد.برای مثال جهت پاک کردن مقادیر مقادیر موجود در سلول A1 داریم:
Worksheets(“Sheet1”).Range(“A1”).ClearContents
VBA شامل تمامی اجزای یک زبان برنامهنویسی پیشرفته از جمله متغیر، آرایه حلقه و … میباشد.
سلول اکسل در ماکرو نویسی
ایجاد شده:
آذر ۲۸, ۱۳۹۳
/
نویسنده:
حامد قدیمی
/
دیدگاهها:
۲۶
یک کار معمول در ماکرو نویسی اکسل مشخص کردن یک یا چند سلول اکسل، فرمول نویسی در آنها و یا استفاده از فضای سلول ها برای درج مقدار متغیر ها یا خروجی ها یا به عبارتی استفاده از سلول اکسل در ماکرو نویسی میباشد.
سلول های اکسل میتوانند در دسترس ترین گزینه برای برنامه نویسان به منظور درج پارامترهای ورودی توسط کاربران و یا نمایش خروجی برنامه به استفاده کنندگان باشد.
اکسل پرو
گستره استفاده از سلول اکسل در ماکروها
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
کدهای ویژوال بیسیک نوشته شده در فضای ماکرو نویسی اکسل میتوانند اطلاعات بسیاری را با سلول های اکسل تبادل نمایند، و پارامترهای بسیاری را در مورد سلول های اکسل تعیین نمایند، در ادامه به برخی موارد استفاده از سلول اکسل در ماکرو نویسی اشاره شده است:
برنامه نویسان ویژوال بیسیک میتوانند سلول های اکسل را برای وارد کردن پارامترها و متغیرهای استفاده شده در ماکرو های خود استفاده نمایند، مثلاً یکی از سلول های اکسل را مشخص کرده و از کاربر بخواهید که سن خود را در آن وارد نماید، عدد وارد شده میتواند یکی از متغیر های برنامه ی شما باشد.
از سلول های اکسل میتوان برای گزارش خروجی یک ماکرو و یا نمایش مقادیر متغیرهای بدست آمده برای کاربران استفاده نمود.
از فضای سلول های اکسل میتوان به عنوان محلی دائمی یا موقت برای ذخیره متغیرهای ماکرو نوشته شده استفاده کرد.
با کد نویسی ویژوال بیسیک در اکسل میتوان تمامی خواص سلول های اکسل و فرمت محتوای آنها را کنترل کرد، مثلاً شما میتوانید، رنگ، حاشیه، اندازه، فرمت و… هریک از سلول های اکسل را با کدهای ویژوال بیسیک تعیین نمایید
از طریق ویژوال بیسیک در اکسل میتوان همانند آنچه در محیط اکسل انجام میشود، برای سلول های اکسل فرمول نویسی کرد
میتوان یک سلول یا گروهی از سلول ها را به عنوان یک متغیر در برنامه به کاربرد، مثلاً شما متغیری به اسم Variable در ماکرو خود تعریف کنید و آن را برابر یک سلول اکسل خود قرار دهید، از این به بعد تمام کارهایی که سلول اکسل میتوانید انجام دهید را میاوتید با این متغیر هم انجام دهید، مانند نامگذاری برای سلول ها در اکسل.
تمام عملیات فوق را میتوان بر روی یک سلول و یا گروهی از سلول ها به صورت همزمان انجام داد.
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
اکسل پرو
سلول های اکسل
برای اشاره به سلول اکسل در ماکرو نویسی ویژوال بیسیک میتوان از شی Range Object) Range) و یا از پروپرتی Cells استفده نمود.
استفاده از شی Range در اشاره به سلول های اکسل
از شی Range میتوان برای اشاره به سلول اکسل در ماکرو نویسی استفاده نمود، در ادامه نحوه ای استفاده از Range به صورت در قالب مثال ارایه شده است:
Range در ویژوال بیسیک
دقت کنید که عبارت قرار گرفته در درون پرانتز شی Range متغیری از نوع رشته میباشد.
به صورت خلاصه تر هم میتوان از شی Range برای اشاره به سلول ها استفاده نمود، برای اینکار نیازی به نوشتن کلمه ی Range و گذاشتن علامت “Quotation Mark” قبل و بعد از نام محدوده نیست، کد زیر نمونه ای از این روش میباشد.
Clear Content
Visual Basic
Sub ClearRange()
Worksheets("Sheet1").[A1:B5].ClearContents
End Sub
1
2
3
Sub ClearRange()
Worksheets("Sheet1").[A1:B5].ClearContents
End Sub
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
در این کد محتوای سلول های محدوده ی A1 تا B5 پاک شده است.
اکسل پرو
استفاده از پروپرتی Cells در اشاره به سلول های اکسل
همانند Range، از Cells هم میتوان برای اشاره به سول ها و تغییر خواص آنها استفاده نمود، تفاوت عمده ی Cells و Range در این است که در صورت استفاده از Cells شماره ی سطر و ستون سلول ها مورد استفاده قرار میگیرد و نه نام آنها، جدول زیر مثال هایی از نحوه ی به کار بردن Cells برای اشاره به سلول های اکسل در کدهای ویژوال بیسیک ارایه میدهد.
استفاده از Cells به علت اینکه سطر و ستون سلول میتوانند به عنوان متغیرهای عددی مورد استفاده قرار گیرند در کد نویسی ها بسیار متداول تر میباشد.
Cells در وِِیژوال بیسیک
استفاده از متغیرها در Range به منظور اشاره به سلول ها ممکن است اما به دلیل رشته ای بودن نوع آرگومان قرار گرفته در پرانتز Range، کد نویسان ترجیح میدهند از Cells استفاده کنند، زیرا پارامترهای نشان دهنده سطر و ستون در Cells هر دو متغیرهای عددی هستند و کار با آنها در برنامه نویسی راحت تر است.
استفاده از پروپرتی های Row و Column در اشاره به سلول های اکسل
از پروپرتی های Row و Column هم برای اشاره کردن به سلول های اکسل میتوان استفاده نمود، به این تفاوت که این پروپرتی ها سطر ها و ستون ها را میتوانند مورد اشاره قرار دهند و نه سلول ها را، در ادامه مثال هایی از کاربرد Row و Column برای اشاره به سلول های اکسل توسط کدهای ویژوال بیسیک آورده شده است.
Row و Column در ویژوال بیسیک
به عنوان مثال کد زیر برای Bold کردن فونت سلول های قرار گرفته در ردیف ۱ از Sheet1 نوشته شده است.
Bold Fonts of Row 1
Visual Basic
Sub RowBold()
Worksheets("Sheet1").Rows(1).Font.Bold = True
End Sub
1
2
3
Sub RowBold()
Worksheets("Sheet1").Rows(1).Font.Bold = True
End Sub
اشاره به یک محدوده ی نامگذاری شده در محیط اکسل توسط کدهای ویژوال بیسیک
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
در مبحث نامگذاری محدوده ها در اکسل یاد گرفتیم که چگونه میتوانیم برای یک یا چند سلول اکسل خود یک نام اختصاص دهیم، دانستیم که نامگذاری محدوده ها در اکسل فرمول نویسی ها را برای ما راحت تر نموده و فایل های اکسل ما را گویا تر میکند.
در کدهای ویژوال بیسیک شما میتوانید از نام های اختصاص داده شده برای سلول ها در اکسل برای اشاره به آن ها استفاده نمایید. برای این کار محدوده ای از اکسل به نام ExcelRange که در فایل اکسل MyWorkBook و در Sheet1 قرار دارد را در نظر بگیرید، کدهای زیر نحوه ی اشاره به این محدوده را نمایش میدهند و همگی یک کار را انجام میدهند.
Setting a Value for a Named Range
Visual Basic
Sub SetValue()
[ExcelRange].Value = 21
End Sub
1
2
3
Sub SetValue()
[ExcelRange].Value = 21
End Sub
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
Setting a Value for a Named Range
Visual Basic
Sub SetValue ()
Range("MyWorkBook.xls!ExcelRange").Value = 21
End Sub
1
2
3
Sub SetValue ()
Range("MyWorkBook.xls!ExcelRange").Value = 21
End Sub
Setting a Value for a Named Range
Visual Basic
Sub SetValue ()
Range("[MyWorkBook.xls]Sheet1!ExcelRange").Value = 21
End Sub
1
2
3
Sub SetValue ()
Range("[MyWorkBook.xls]Sheet1!ExcelRange").Value = 21
End Sub
Setting a Value for a Named Range
Visual Basic
Sub SetValue ()
Application.Goto Reference:="MyWorkBook.xls!ExcelRange"
Selection.Value = 21
End Sub
1
2
3
4
Sub SetValue ()
Application.Goto Reference:="MyWorkBook.xls!ExcelRange"
Selection.Value = 21
End Sub
Setting a Value for a Named Range
Visual Basic
Sub SetValue ()
Application.Goto Reference:="ExcelRange"
Selection.Value = 21
End Sub
1
2
3
4
Sub SetValue ()
Application.Goto Reference:="ExcelRange"
Selection.Value = 21
End Sub
اکسل پرو
برای اشاره همزمان به نام چند محدوده میتوانیم از کدی مشابه کد زیر استفاده کنیم، این کد محتوای سلول های محدوده ی A_Range، B_Range و C_Range را پاک میکند
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
azsoftir@gmail.com
:: موضوعات مرتبط:
excelacess ,
,
:: بازدید از این مطلب : 93
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0